package config

import (
	"github.com/go-yaml/yaml"
	"io/ioutil"
	"log"
)

// http配置
type HttpConfig struct {
	Host string `yaml:"host"`
	Port string `yaml:"port"`

	// 操作密码
	Password string `yaml:"password"`
}

// redis配置
type RedisConfig struct {
	Host     string `yaml:"host"`
	Port     string `yaml:"port"`
	Password string `yaml:"password"`
	DB       int    `yaml:"db"`
}

// 全局变量
var (
	// 主配置
	mainConfig = struct {
		Http  HttpConfig
		Redis RedisConfig
	}{}
)

// 获取http配置
func Http() HttpConfig {
	return mainConfig.Http
}

// 获取Redis配置
func Redis() RedisConfig {
	return mainConfig.Redis
}

func init() {
	//读取并解析yaml配置文件
	configBuffer, err := ioutil.ReadFile("./config.yaml")
	if err != nil {
		log.Fatal(err)
	}
	if err := yaml.Unmarshal(configBuffer, &mainConfig); err != nil {
		log.Fatal(err)
	}
}
